package com.solo.eggsolo.controller;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.solo.eggsolo.common.bean.JsonResult;
import com.solo.eggsolo.common.bean.Pager;
import com.solo.eggsolo.entity.Click;
import com.solo.eggsolo.service.ClickService;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/**
 * 
 * @author Yu
 *
 */
@RestController
@RequestMapping("/click")
@Api(tags = "热门管理")
public class ClickController {
	@Autowired
	private ClickService clickService;

	@ApiOperation("热门歌曲列表")
	@RequestMapping(value = "/list", method = { RequestMethod.GET })
	public Pager<Click> list(@RequestParam(value = "page", defaultValue = "1") Integer page,
			@RequestParam(value = "rows", defaultValue = "10") Integer size) {

		Pager<Click> pager = new Pager<>(page, size);

		List<Click> list = clickService.list(pager);
		int total = clickService.count(pager);
		pager.setData(list);
		pager.setTotal(total);
		pager.setCode(200);

		return pager;
	}
	
	@ApiOperation("通过id查询歌曲及歌曲点击量，id必填")
	@RequestMapping(value = "/findById", method = {RequestMethod.GET})
	public JsonResult findById(Integer id) {
		
		JsonResult result = new JsonResult(500,Boolean.FALSE, "查询失败");
		Click click = clickService.findById(id);
		
		if (click !=null) {
			result = new JsonResult(200,Boolean.TRUE, "查询成功",click);
		}
	
		return result;
	}
	
	@ApiOperation("添加热门歌曲，songId必填")
	@RequestMapping(value="/add",method = {RequestMethod.POST})
	public JsonResult add(Click click) {
		JsonResult result = new JsonResult(500,Boolean.FALSE,"新增失败");
		
		boolean ret = clickService.add(click);
		if(ret) {
			result = new JsonResult(200,Boolean.TRUE,"新增成功");
		}
		return result;
	}
	
	@ApiOperation("修改热门歌曲的点击量或者热门歌曲，id必填")
	@RequestMapping(value="/edit",method = {RequestMethod.POST})
	public JsonResult edit(Click click) {
		JsonResult result = new JsonResult(500,Boolean.FALSE, "修改失败");
		boolean ret = clickService.edit(click);
		if (ret) {
			result = new JsonResult(200,Boolean.TRUE, "修改成功");
		}
		return result;
	}
	
	@ApiOperation("删除某一热门歌曲，id必填")
	@RequestMapping(value="delete",method= {RequestMethod.POST})
	public JsonResult delete(Click click) {
		JsonResult result = new JsonResult(500,Boolean.FALSE,"删除失败");
		
		List<Click> list = new ArrayList<Click>();
		list.add(click);
		
		boolean ret = clickService.deleteByIds(list);
		if(ret) {
			result = new JsonResult(200,Boolean.TRUE,"删除成功");
		}
		
		return result;
	}

}
